package com.chezai.client.utils;

import com.chezai.client.bean.GnssStatus;
import com.jx.driving.util.ByteUtils;

import java.util.BitSet;

/**
 * Describe gnss包工具类
 * Created by LZF on 2017-02-17.
 */
public class TcpUtil {

    public void TcpUtil(){

    }


    /** 生成状态标识 */
    public static long generateStatus(GnssStatus gnssStatus) {
        BitSet bitSet = new BitSet();
        bitSet.set(0, gnssStatus.isAcc());
        bitSet.set(1, gnssStatus.isLocation());
        bitSet.set(2, gnssStatus.getLat());
        bitSet.set(3, gnssStatus.getLng());
        bitSet.set(4, gnssStatus.isRuning());
        bitSet.set(5, gnssStatus.isLngLatEncryption());
        bitSet.set(6, gnssStatus.isUpLoadType());
        bitSet.set(10, gnssStatus.isOilStatus());
        bitSet.set(11, gnssStatus.isElectritStatus());
        bitSet.set(12, gnssStatus.isLock());
        //将BitSet对象转成byte数组
        byte[] longArray = bitSet2ByteArray(bitSet);
        long status = ByteUtils.byteArraysToLong(longArray);
        return status;
    }

    public static byte[] bitSet2ByteArray(BitSet bits) {
        byte[] bytes = new byte[bits.length() / 8 + 1];
        for (int i = 0; i < bits.length(); i++) {
            if (bits.get(i)) {
                bytes[bytes.length - i / 8 - 1] |= 1 << (i % 8);
            }
        }
        return bytes;
    }
}
